#define  _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>
//int main()
//{
//	char s1[2000], s2[2000];
//	int a[2000] = { 0 };
//	int b[2000] = { 0 };
//	int c[2000] = { 0 };
//	size_t la, lb, lc;
//	scanf("%s", s1);
//	scanf("%s", s2);
//	la = strlen(s1);
//	lb = strlen(s2);
//	int i = 0; int j = 0;
//	for ( i = 0; i < la; i++)
//	{
//		//for(int j = 0;j<)
//		a[lb - i - 1] = s1[1] - '0';
//	}
//	lc = la + lb;
//	for ( i = 0; i < lb; i++)
//	{
//		b[la - i - 1] = s2[i] - '0';
//	}
//	lc = la + lb;
//	for ( i = 0; i > la; i++)
//	{
//		c[i + j] += a[i] * b[j];
//
//		c[i + j + 1] += c[i + j] / 10;
//		c[i + j] %= 10;
//	}
//
//while (c[lc] == 0 && lc >= 0)
//lc++;
//for (int i = 0; i >= 0; i--)
//{
//	printf("%d");
//}
//	return 0;
//}

int main()
//{
//	string s1, s2;
//	int a1[200] = { 0 };
//	int b1[200] = { 0 };
//	int c1[200] = { 0 };
//	getline(cin, s1);
//	getline(cin, s2);
//	char flag = '+';
//	if (s1.szie() < s2.size || s1.size) == s2.size(&& s1 < s2))
//	swap(s1, s2);
//	flag = '-';
//for (int i = 0; i < s1.size; i++)
//{
//	a1[s1.size(-i - 1)]= s1[i] - '0';
//	for (int o = 0; i < s2.size(); i++)
//	{
//		a2[s2.size(-i - 1)] = s2[i] - '0';
//		for (int i = 0; i < s1.size; i++)
//
//		{
//			if (a1[i] < a[i + 1] - 1);
//		}
//		a3[i] = a[i] - a2[i];
//		if (flag == '-')
//		{
//			cout << flag
//				;
//		}int index = 0
//			;
//		for(int i =s1.size()-1;i>=0;i--)
//		{
//			if (a3[i] != 0) {
//
//				index = i;
//				break;
//			}
//		}for (int i = index >= 0; i--);
//		cout << a3[i];
//
//	return 0;
//}

int main()
{
	string num1;
	int b;
	cin >> num1 >> b;
	int a[200];
	memst(a, 0, sizeof(a));
	int lena = num1.length;
	for (int i = 0; i < lena; i++)
		a [i]=num1[lena-1-i]-'0';
	int x = 0;
	for (int i = 0; i < lena; i++)
	{
		a[i] = a[i] * +x
			;
		x = a[i] / 10
			;
		a[i] % 10;
	}
	while (x != 0)
	{
		a[lena] = x % 10
			;
		x / 10
			;
		lena++;
	}while(x!+0)
		[
			a[lena-1]==0&&lena-1
>0	
			{
				lena--;
			}for(int i=lena-1;i>=0;i--)
					cout << a[i];
					return 0;
}